package com.atguigu.spring.beans.annotation;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.atguigu.spring.beans.annotation.controller.UserController;


/**
 * 
 * @Component: 基本注解, 标识了一个受 Spring 管理的组件
 * @Respository: 标识持久层组件
 * @Service: 标识服务层(业务层)组件
 * @Controller: 标识表现层组件
 * 
 * @author liuxin
 * 
 */
public class Main {

	
	/**
	 * 
	 * @SuppressWarnings("XXXX")不显示警告
	 * 通过 @SuppressWarnings 的源码可知，其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。
	 * 建议注解应声明在最接近警告发生的位置。
	 */
	public static void main(String[] args) {
		
		@SuppressWarnings("resource")
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-annotation.xml");
		
//		TestObject testObject = (TestObject)ctx.getBean("testObject");
//		System.out.println(testObject);
		
		UserController userController = (UserController)ctx.getBean("userController");
		System.out.println(userController);
		userController.add();
		
//		UserServiceImpl userServiceImpl = (UserServiceImpl)ctx.getBean("userServiceImpl");
//		System.out.println(userServiceImpl);
//
//		UserRepository userRepository = (UserRepository)ctx.getBean("userRepository");
//		System.out.println(userRepository);
		
		
	}
	
}
